1. Field of the Invention
The present invention relates generally to computer storage, and more particularly to host storage controller configuration via Extensible Markup Language.
2. Description of the Related Art
As computer systems have become larger, faster, and more reliable, there has been a corresponding increase in the need for storage capacity, speed, and reliability of the storage devices. Although increases in the data storage capacity and reliability of storage devices have been dramatic in recent years, there remain certain limitations to what can be accomplished. In response, alternative configurations of storage devices have increasingly been offered in recent years to meet demand for larger capacity, faster, more reliable, and more accessible data storage.
One example of the alternative configurations is the redundant array of independent disks (RAID), which is a disk subsystem that increases performance and provides fault tolerance. A RAID is a set of two or more hard disks and a specialized disk controller that contains the RAID functionality. In operation, a RAID improves performance via disk striping, which interleaves bytes or groups of bytes across multiple drives, resulting in multiple disks reading and writing simultaneously.
In addition, mirroring and parity is used to achieve fault tolerance. Mirroring duplicates 100% of the data on two drives. Parity calculates the data in two drives and stores the result on a third drive. Essentially, a bit from drive 1 is XOR'd with a bit from drive 2, and the result bit is stored on drive 3. In this manner, a failed drive can be hot swapped with a new one, and the RAID controller can automatically rebuild the lost data.
Often, multiple computer systems are configured to share multiple storage devices. Thus, configurations of storage devices can be use as a storage area network (SAN). A SAN is a configuration of multiple data storage devices, connected to one or more host computer systems, such that there is a communication path from each storage device to each host system which does not cross the system bus of another host system. Because there exists a direct communication path from each system to each storage device, data on any device is readily accessible to any of the systems. Storage devices in a SAN are not necessarily identified with or controlled by a host. This latter feature distinguishes a SAN from a simple network of computer systems, each having its own local storage devices. Thus, in certain computing environments, a SAN facilitates sharing of data and improved performance over a conventional network of host systems.
Unfortunately, the requirements to configure such a system place substantial demands on the expertise of the user. A user must determine how to operate, configure and attach devices. Optimum physical configurations may depend on logical configurations and modes of operation, such as one or more RAID levels. There may be numerous hardware dependencies and limitations, such as number and type of devices that may communicate with a single I/O controller or adapter. Hence, it is desirable to support the construction of storage networks with software that assists the user.
Currently, storage handling controller configuration is performed using proprietary data structures. Hence, standard configuration interfaces cannot be used. Although, some manufactures have tried to use Hyper Text Markup Language (HTML) as a method to transmit data to remote and local storage handling controllers for configuration, HTML lacks flexibility and speed.
In view of the foregoing, there is a need for a SAN configuration method that supports the construction of SANs with software that assists the user. The method should utilize a flexible and fast manner of communicating with users, and preferably should enhance usability by using a graphical user interface to facilitate configuration.